﻿using System;
using System.Collections.Generic;

namespace Algorytm
{
    public class Algorytm_Wyniki
    {
        List<Algorytm_Element_wyniku> wyniki;
        private string komentarz;
        public bool Czy_wszystko_poszlo_dobrze;

        public string Komentarz
        {
            get { return komentarz; }
            set { }
        }

        public bool Czy_wygenerowano_pomyslnie()
        {
            return Czy_wszystko_poszlo_dobrze;
        }

        public Algorytm_Wyniki()
        {
            Czy_wszystko_poszlo_dobrze = false;
            wyniki = new List<Algorytm_Element_wyniku>();
        }

        public Algorytm_Wyniki(Algorytm_Wyniki wyn)
        {
            Czy_wszystko_poszlo_dobrze = wyn.Czy_wszystko_poszlo_dobrze;
            wyniki = new List<Algorytm_Element_wyniku>(wyn.wyniki);
            komentarz = wyn.komentarz;
        }

        public Algorytm_Wyniki(List<Algorytm_Element_wyniku> _wyniki, String _komentarz)
        {
            wyniki = _wyniki;
            komentarz = _komentarz;
        }

        public void Ustaw_liste(List<Algorytm_Element_wyniku> w)
        {
            wyniki = w;
        }

        public void Dodaj_komentarz(String _komentarz, bool czy)
        {
            Algorytm_Tworzenie_dla_Szkoly.p("ustawiam czy na " + czy);
            komentarz = _komentarz;
            Czy_wszystko_poszlo_dobrze = czy;
        }

        public void dodaj_element(Algorytm_Element_wyniku elem)
        {
            wyniki.Add(elem);
        }

        public void dodaj_element(int _klasa, int _nauczyciel, int _przedmiot, int _sala, int _dzien, int _godzina, int _dlugosc, bool _czy_zajecia_grupowe)
        {
            Algorytm_Element_wyniku elem = new Algorytm_Element_wyniku(_klasa, _nauczyciel, _przedmiot, _sala, _dzien, _godzina, _dlugosc, _czy_zajecia_grupowe);
            dodaj_element(elem);
        }

        public List<Algorytm_Element_wyniku> Pobierz_Liste()
        {
            List<Algorytm_Element_wyniku> pom = new List<Algorytm_Element_wyniku>();
            foreach (var item in wyniki)
            {
                pom.Add(item);
            }

            return pom;
        }

        public void czysc()
        {
            wyniki.Clear();
            Czy_wszystko_poszlo_dobrze = false;
            komentarz = "";
        }

        public List<Algorytm_Element_wyniku> Pobierz_Plan_Awaryjny()
        {
            return wyniki;
        }

        public void Drukuj()
        {
            foreach (var item in wyniki)
            {
                Console.WriteLine("klasa " + item.Klasa + " nauczyciel " + item.Nauczyciel + " przedmiot " + item.Przedmiot +
                    " dzien " + item.Dzien + " godzina " + item.Godzina + " sala " + item.Sala + " czy grupowe " + item.Czy_zajecia_sa_grupowe);
            }
        }
    }
}